package com.gtja.beoms.dao;

import com.gtja.beoms.dto.QwGroupMemberWithTolistInfoDTO;
import com.gtja.beoms.pojo.QwGroupMember;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

/**
 * 群成员管理Mapper接口
 *
 * @author Li
 * @date 2021-05-26
 */
@Mapper
public interface QwGroupMemberDao {
    /**
     * 查询群成员管理
     *
     * @param id 群成员管理ID
     * @return 群成员管理
     */
    public QwGroupMember selectQwGroupMemberById(String id);

    /**
     * 查询群成员管理列表
     *
     * @param qwGroupMember 群成员管理
     * @return 群成员管理集合
     */
    public List<QwGroupMember> selectQwGroupMemberList(QwGroupMember qwGroupMember);

    /**
     * 新增群成员管理
     *
     * @param qwGroupMember 群成员管理
     * @return 结果
     */
    public int insertQwGroupMember(QwGroupMember qwGroupMember);

    /**
     * 修改群成员管理
     *
     * @param qwGroupMember 群成员管理
     * @return 结果
     */
    public int updateQwGroupMember(QwGroupMember qwGroupMember);

    /**
     * 修改群成员管理
     *
     * @param qwGroupMember 群成员管理
     * @return 结果
     */
    public int updateQwGroupMemberByChatId(QwGroupMember qwGroupMember);

    /**
     * 删除群成员管理
     *
     * @param id 群成员管理ID
     * @return 结果
     */
    public int deleteQwGroupMemberById(String id);

    /**
     * 批量删除群成员管理
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteQwGroupMemberByIds(String[] ids);

    /**
     * 根据roomid查询members
     *
     * @param chatId 房间号
     * @return
     */
    ArrayList<QwGroupMemberWithTolistInfoDTO> selectMembersByChatId(@Param("chatId") String chatId);

    /**
     * 根据userId删除
     *
     * @param userId
     */
    void deleteQwGroupMemberByUserId(@Param("userId") String userId);

    /**
     * 查询群成员昵称
     *
     * @param chatId 群ID
     * @param userId 群成员ID
     * @return 群成员管理集合
     */
    QwGroupMember selectQwGroupMember(String chatId, String userId);
}
